import dayjs from 'dayjs'

/**
 * 格式化时间
 * @param datetime     原来的时间
 * @param format   格式，例如 YYYY-MM-DD HH:mm:ss
 */
export function parseTime(datetime, format) {
  return dayjs(datetime).format(format)
}

/**
 * 默认格式化日期时间, 格式为 YYYY-MM-DD HH:mm:ss
 * @param datetime     原来的时间
 * @return YYYY-MM-DD HH:mm:ss
 */
export function convertDateTime(datetime) {
  return dayjs(datetime).format('YYYY-MM-DD HH:mm:ss')
}

/**
 * 格式化为时间，去掉日期，格式为 HH:mm
 * 例如 2022-06-24 17:10:00 转为 17:10
 * @param datetime
 * @returns HH:mm
 */
export function convertTime(datetime) {
  return parseTime(datetime, 'HH:mm:ss')
}

/**
 * 格式化为日期，去掉时间，格式为 YYYY-MM-DD
 * 例如 2022-06-24 17:10:00 转为 2022-06-24
 * @param datetime
 * @returns YYYY-MM-DD
 */
export function convertDate(datetime) {
  return parseTime(datetime, 'YYYY-MM-DD')
}

/**
 * 获取当前日期
 * @return YYYY-MM-DD
 */
export function currentDate() {
  return convertDate(new Date())
}

/**
 * 比较两个时间之间的差值, unit 表示单位
 * unit = 'd' | 'D' | 'M' | 'y' | 'h' | 'm' | 's' | 'ms'
 * unit = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year' | 'date'
 * @param start 开始时间
 * @param end   结束时间
 * @param unit  单位
 */
export function diff(start, end, unit) {
  return dayjs(start).diff(dayjs(end), unit)
}

/**
 * 比较两个日期之间的秒数
 */
export function diffSecond(start, end) {
  return diff(start, end, 's')
}
